'''
* This is the projet for Brtc LlmOps Platform
* @Author Leon-liao <liaosiliang@alltman.com>
* @Description //TODO 
* @File: 5_study_config_prompt.py
* @Time: 2025/7/27
* @All Rights Reserve By Brtc
'''
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import ConfigurableField

""" 5、Runnable 组件动态添加默认调用参数   b、configurable_fields 运行流程与解析"""
#1、创建可配置的提示词
'''
prompt = PromptTemplate.from_template("请讲一个关于{subject}主题的笑话").configurable_fields(
    template=ConfigurableField(
    id = "prompt_template",
    name="提示词模板的模板",
    description="提示词模板字符串本身"
))2
'''
# bind 是能不能改的
prompt = PromptTemplate.from_template("请讲一个关于{subject}主题的笑话").bind(template="请写一篇关于{subject}的藏头诗")

# 2、传递配置更改prompt_template并调用生成内容
content = prompt.invoke({"subject":"程序员"}).to_string()
print(content)